package svgedit.svg;

/**
 * Interface for visiting SVG elements. Implement this interface to provide
 * specific support for elements based on their types. Call
 * {@link svgedit.svg.SVGElement#acceptVisitor} to have the appopriate
 * {@literal visit} method invoked on the interface.
 */
public interface SVGVisitor
{

	/**
	 * Visits a group element.
	 * 
	 * @param group
	 *            the SVG group element
	 */
	public void visitGroup(SVGGroup group);

	/**
	 * Visits a rect element.
	 * 
	 * @param rect
	 *            the SVG rect element
	 */
	public void visitRect(SVGRectElement rect);

	/**
	 * Visits a circle element.
	 * 
	 * @param circle
	 *            the SVG circle element
	 */
	public void visitCircle(SVGCircleElement circle);

	/**
	 * Visits a line element.
	 * 
	 * @param line
	 *            the SVG line element
	 */
	public void visitLine(SVGLineElement line);

}
